package com.ruoyi.loan.domain.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.page.PageDomain;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class CustomerInfoRequest extends PageDomain {

    private static final long serialVersionUID = 1L;

    /**
     * 客户id
     */
    private Long id;

    /**
     * 类型
     * 1、公共售前客户池
     * 2、我的售前客户池
     * 3、我的后期客户池
     * 4、我的售后客户池
     * 5、团队售前客户池
     * 6、团队后期售后池
     * 7、团队售后客户池
     * 8、待确认至后期
     * 9、待确认至售后
     */
    @NotNull(message = "类型不能为空")
    private Integer type;

    /**
     * 签约状态 0未签约 1已签约
     */
    private Integer signingStatus;

    /**
     * 处理用户 空为业务状态未分配，否则为已分配
     */
    private Long handleUser;

    /**
     * 贷款状态 0未进入后期 1进入后期
     */
    private Integer loanStatus;

    /**
     * 售后状态 0未进入售后 1进入售后
     */
    private Integer afterSaleStatus;

    /**
     * 有无车辆 0无 1有
     */
    private String hasCar;

    /**
     * 有无保单 0无 1有
     */
    private String hasInsurance;

    /**
     * 有无房产 0无 1有
     */
    private String hasHouse;

    /**
     * 贷款金额
     */
    private BigDecimal startLoanRange;

    /**
     * 贷款金额
     */
    private BigDecimal endLoanRange;

    /**
     * 手机号码
     */
    private Long phoneNumber;

    /**
     * 姓名
     */
    private String name;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd" ,  timezone = "GMT+8")
    private Date beginTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /**
     * 性别 0男 1女
     */
    private Integer sex;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 申请城市
     */
    private String city;

    /**
     * 婚姻 0未婚 1已婚
     */
    private Integer maritalStatus;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;

    /**
     * 配偶生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd" ,  timezone = "GMT+8")
    private Date spouseSpouse;

    /**
     * 结婚纪念日
     */
    @JsonFormat(pattern = "yyyy-MM-dd" ,  timezone = "GMT+8")
    private Date weddingAnniversary;

    /**
     * 身份证
     */
    private String idCard;

    /**
     * 配偶身份证
     */
    private String spouseIdCard;

    /**
     * 客户星级 字典：customer_level
     */
    private String level;

    /**
     * 客户状态 字典：customer_status
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 关键字
     */
    private String keyword;

    /**
     * 金额（万）
     */
    private BigDecimal amount;

    /**
     * 贷款用途
     */
    private String loanUse;

    /**
     * 贷款备注
     */
    private String loanRemark;

    /**
     * 期限（月）
     */
    private Integer timeLimit;

    /**
     * 用款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd" ,  timezone = "GMT+8")
    private Date serviceTime;

    /**
     * 放款机构
     */
    private String lendingInstitution;

    /**
     * 还款方式 1月 2季度
     */
    private Integer repaymentType;

    /**
     * 还款月
     */
    private Integer repaymentMonth;

    /**
     * 还款日
     */
    private Integer repaymentDay;

    /**
     * 还款金额
     */
    private BigDecimal repaymentAmount;

    /**
     * 截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd" ,  timezone = "GMT+8")
    private Date deadline;

    /**
     * 职业 字典：customer_occupation
     */
    private String occupation;

    /**
     * 职位备注
     */
    private String occupationRemark;

    /**
     * 费用（boss岗能看到）
     */
    private String expense;

    /**
     * 房产信息json
     */
    private String houseJson;

    /**
     * 车产信息json
     */
    private String carJson;

    /**
     * 保单json
     */
    private String insuranceJson;

    /**
     * 跟进客户
     */
    private Integer followCustomer;

    /**
     * 跟进提醒
     */
    private Integer followRemind;

    /**
     * 还款提醒
     */
    private Integer followRepayment;

    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",  timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改人
     */
    private Long updateUser;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",  timezone = "GMT+8")
    private Date updateTime;
}
